From d74feca09e34efe3f89013512731e315d88fc813 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 3 Mar 2005 06:40:53 +0000 Subject: [PATCH] Avoid warnings if gtk_widget_reparent() is called at unusual times. 2005-03-03 Matthias Clasen * gtk/gtkwidget.c (gtk_widget_reparent_subwindows): Avoid warnings if gtk_widget_reparent() is called at unusual times. (#168966, Christian Persch) --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtkwidget.c | 30 ++++++++++++++++++------------ 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3a218dd9d2..4f08c210aa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-03-03 Matthias Clasen + + * gtk/gtkwidget.c (gtk_widget_reparent_subwindows): + Avoid warnings if gtk_widget_reparent() is called at + unusual times. (#168966, Christian Persch) + Tue Mar 1 14:04:08 2005 Manish Singh * gdk/x11/gdkproperty-x11.c (virtual_atom_check_init): Cast to avoid diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 3a218dd9d2..4f08c210aa 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +2005-03-03 Matthias Clasen + + * gtk/gtkwidget.c (gtk_widget_reparent_subwindows): + Avoid warnings if gtk_widget_reparent() is called at + unusual times. (#168966, Christian Persch) + Tue Mar 1 14:04:08 2005 Manish Singh * gdk/x11/gdkproperty-x11.c (virtual_atom_check_init): Cast to avoid diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 3a218dd9d2..4f08c210aa 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +2005-03-03 Matthias Clasen + + * gtk/gtkwidget.c (gtk_widget_reparent_subwindows): + Avoid warnings if gtk_widget_reparent() is called at + unusual times. (#168966, Christian Persch) + Tue Mar 1 14:04:08 2005 Manish Singh * gdk/x11/gdkproperty-x11.c (virtual_atom_check_init): Cast to avoid diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 3a4f76bd85..29ee934a9e 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -3730,21 +3730,27 @@ gtk_widget_reparent_subwindows (GtkWidget *widget, } else { - GdkWindow *parent = gdk_window_get_parent (widget->window); + GdkWindow *parent; + GList *tmp_list, *children; - GList *children = gdk_window_get_children (parent); - GList *tmp_list; - for (tmp_list = children; tmp_list; tmp_list = tmp_list->next) - { - GtkWidget *child; - GdkWindow *window = tmp_list->data; + parent = gdk_window_get_parent (widget->window); - gdk_window_get_user_data (window, (void **)&child); - if (child == widget) - gdk_window_reparent (window, new_window, 0, 0); + if (parent) + { + children = gdk_window_get_children (parent); + + for (tmp_list = children; tmp_list; tmp_list = tmp_list->next) + { + GtkWidget *child; + GdkWindow *window = tmp_list->data; + + gdk_window_get_user_data (window, (void **)&child); + if (child == widget) + gdk_window_reparent (window, new_window, 0, 0); + } + + g_list_free (children); } - - g_list_free (children); } } -- 2.30.2